﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Caixa.BLL;
using Caixa.Model;

namespace Caixa
{
    public partial class Frm_Acesso : Caixa.Frm_Base
    {
        #region " Variables "

        TextBox text = null;

        #endregion

        #region " Constructor "

        public Frm_Acesso()
        {
            InitializeComponent();
        }

        #endregion

        #region " Events "

        private void Frm_Acesso_Load(object sender, EventArgs e)
        {
            tecladoVirtual.TeclaAcionada += new Caixa.Controls.TecladoVirtual.TeclaAcionadaEventHandler(tecladoVirtual_TeclaAcionada);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        protected void tecladoVirtual_TeclaAcionada(Caixa.Controls.TecladoVirtual.Tecla tecla)
        {
            if (text != null)
            {
                switch (tecla)
                {
                    case Caixa.Controls.TecladoVirtual.Tecla.Num0:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num1:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num2:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num3:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num4:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num5:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num6:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num7:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num8:
                    case Caixa.Controls.TecladoVirtual.Tecla.Num9:
                        text.Text += Convert.ToInt32(tecla).ToString();
                        break;
                    case Caixa.Controls.TecladoVirtual.Tecla.Corrige:
                        if (text.Text.Length > 0)
                            text.Text = text.Text.Substring(0, text.Text.Length - 1);
                        break;
                    case Caixa.Controls.TecladoVirtual.Tecla.Confirma:
                        // Valida o login da conta do usuário
                        int numeroConta;
                        int.TryParse(string.Format("{0}", txtConta.Text), out numeroConta);
                        try
                        {
                            if (ContaBLL.ValidaAcesso(numeroConta, txtSenha.Text))
                            {
                                CaixaEletronicoBLL.ContaLogada = ContaBLL.GetByNumero(numeroConta);
                                this.Close();
                            }
                        }
                        catch (Exception e)
                        {
                            MessageBox.Show(e.Message, "Login", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            text.Focus();
                        }
                        break;
                    default:
                        break;
                }
            }
        }

        private void txt_Enter(object sender, EventArgs e)
        {
            if (sender is TextBox)
            {
                text = (sender as TextBox);
            }
        }

        private void txtConta_TextChanged(object sender, EventArgs e)
        {
            TextBox obj = (sender as TextBox);
            if (obj.Text.Length >= 5)
                this.SelectNextControl(obj, true, false, true, true);
        }

        private void txtSenha_TextChanged(object sender, EventArgs e)
        {
            TextBox obj = (sender as TextBox);
            if (obj.Text.Length.Equals(0))
                this.SelectNextControl(obj, false, true, true, true);
        }

        #endregion
    }
}
